package com.bw.books.domain;

import lombok.Data;
import org.dromara.easyes.annotation.IndexName;

import java.math.BigDecimal;
import java.sql.Timestamp;

/**
 * 商品实体类
 *
 * @author shopgoods
 */

@Data
@IndexName
public class Product {

    private Integer productID; // 商品ID，主键，自增

    private String name; // 商品名称，不允许为空

    private String description; // 商品描述，可为空

    private Integer categoryID; // 类别ID，外键引用Category表

    private Integer brandID; // 品牌ID，外键引用Brand表

    private BigDecimal price; // 商品价格，不允许为空，保留两位小数

    private BigDecimal originalPrice; // 原价，可为空，用于显示折扣信息

    private BigDecimal discount; // 折扣率，可为空，如0.8表示8折

    private Integer stock; // 库存数量，不允许为空，且必须为非负数

    private String availability; // 可用性状态，不允许为空

    private BigDecimal weight; // 商品重量，可为空

    private String dimensions; // 商品尺寸（长x宽x高），可为空，格式为字符串

    private BigDecimal shippingCost; // 运费，可为空，根据商品和配送地址计算

    private Timestamp createdAt; // 创建时间，默认为当前时间

    private Timestamp updatedAt; // 更新时间，每次更新记录时自动更新

    private Boolean isDeleted; // 逻辑删除标记，默认为未删除

    private Integer category; // 关联类别

    private Integer brand; // 关联品牌

}
